PROGRAM: Quixx AUTHOR: Jonathan Kraidin on 2/90 VERSION: 3.x2 on 02/25/92 LAST VER: 2.43 on 11/17/91 USE: TSR Screen Animator REQUIRES: DOS 3.0 or above (might work with 2.1 and below, but not tested) CGA, EGA, VGA Extended or Expanded memory strongly recommended CGA = 32K, EGA = 64K, VGA = 160K SOURCE: ASSEMBLY AUTHOR'S NOTE: Literally hundreds of people have been sending mail asking for user support when necessary. I am asking that those of you who find Quixx useful and pleasing to look at rather than a blank, lifeless screen to please contribute $15 to register yourselves. The source code is also available, but only to those who are already registered users for an additional $15. I think you will find this an excellent screen animator. At the end of this listing is included a terse summary of updates to previous versions. 1. USE: This is a TSR program that generates a selected animation routine after a given idle period. The user has a choice of a vapor plasma or warp space travel. With these two animations there are 23 selections. A simple help file can be called by typing QUIXX ? at the DOS prompt. The program is loaded into memory with: QUIXX TimeOut Mode OR QUIXX Special (after the Quixx is already loaded) where TimeOut is the idle time in minutes (1 to 99) and Mode is from 0 to 19. 2. ANIMATION MODES: Modes 1 through 15 select a constant color display for the QUIXX using a color palatte corresponding to the Mode. That is Mode 2 = color 2. Mode 0 selects an alternating color display. Every time the Quixx pattern bounces off of a wall the color increments. Mode 16 selects a pattern where the colors vary within each line of the Quixx pattern. This yields a constantly changing image as the vapor trail moves. Mode 17 selects the same pattern-type, but in VGA mode19, allowing 256 colors. The resolution is 320x200. Mode 18 is also in VGA mode19, but here the lines of the vapor trail are solid. As a new lines are drawn they go go through all 256 colors. Mode 19 is the Glide mode. Here the Quixx pattern is one color, but as the image moves its color goes through a continuous spectrum of 384 shades. THIS IS A GREAT MODE. SUMMARY OF COLOR MODES: Plasmas 0 Alternating Colors 1 - 15 Default Colors in Palette 16 High Resolution Pattern1 17 Vga Mode19 Pattern1 (320x200) 18 Vga Mode19 Pattern2 19 Glide Mode (Recommended Mode) Warp Space Travel 20 Warp Travel Mode (640x480x16) 21 Warp Travel1 Mode (640x480x256) [Super Vga required] 22 Warp Travel2 Mode (640x480x256) [Super Vga required] (NOTE: 21 and 22 may not be compatible with all Super Vgas) 3. EXAMPLES OF OPTIONS The options can be changed at any time by retyping the command. So if you had typed: QUIXX 2 15 selecting a 2 minute time-out using mode 15, and you then type QUIXX 5 you change the timeout to 5 minutes and leave the mode unchanged. If you typed QUIXX 5 19 you will have also changed the mode to mode 19. 4. UNLOADING THE TSR If you wish to unload the TSR type QUIXX r This will Remove the TSR from the TSR memory chain, regardless of the number of TSRs loaded before or after the QUIXX program. 5. OTHER FEATURES A. ENABLE/DISABLE ACTIVITY This allows Quixx to remain in memory as a TSR but remain dormant. By typing Quixx - the user disables the sleep count-down. The Quixx will never become active. By typing Quixx + the Quixx's sleep count-down is re-enabled. One can use this feature in a BATCH file if you want to selectively enable/disable the Quixx without changing the programs in active memory. REMEMBER, Quixx's interrupts are still hooked into the BIOS. B. HOT-KEY enable/disable feature. One might be within an application and then realize he does not want Quixx to be active; yet, it is inconvenient to go back to the command line. By hitting the LEFT ALT key twice (ALT ALT) the user can toggle between enabling/ disabling Quixx from within an application. For example, if Quixx is active, hitting ALT ALT will disable Quixx and the user will hear a quick high tone/low tone combination. By hitting ALT ALT again the user will hear a single high-pitch tone reminding him that Quixx is now active. This is a very user friendly option. This option, however, will not work with Windows if it uses the mouse and has disabled the keyboard. In this case, the only means of disabling Quixx is from the command line. C. SPEED CONTROL OF PATTERN The program automatically adjusts its pattern speed to your processor. The user can now over-ride this with the speed control in Version 1.71. By typing Quixx f OR Quixx s the user can speed up or slow down the vapor image. This can be repeated multiple times to go really FAST or SLOW. The user will be informed when the limit is reached. The default speed will be used each time the user changes the sleep-period or the image color mode. D. EXTENDED/EXPANDED MEMORY SWITCH You can switch the memory utilization with the 'x' and 'e' parameter. By typing 'Quixx x' or 'Quixx e' you force Quixx to use extended or expanded memory respectively. This feature can only be used from the command line. E. BOSS KEY One may not wish others to view information that is on your screen. By hitting the Left CTR key twice (CTR CTR) the screen instantely blanks; however, the application is still active. Hitting any key restores the screen. 6. POPUP MENU Now that you have familiarized yourself with the options you can change these features from within any application by activating the PopUp menu. This is done my hitting the key F1 twice (F1 F1). The space bar controls the MODE selection; the left and right arrows control animation speed; the up and down arrows control idle-time; and the Left ALT control the enable/ disable switch. ENTER restores the computer to its previous application. The PopUp menu will not work with WINDOWS. ****************************************************************************** COMPATIBLITY NOTES: IT IS STRONLY RECOMMENDED THAT YOU HAVE EXPANDED OR EXTENDED MEMORY to prevent memory conflicts when the TSR saves your video screen. While the program will use higher memory without EXPANDED memory, the program may crash your system depending on what applications are running. This program has worked well using Expanded Memory with programs like WordPerfect and Harvard Graphics. Please note, that version 3.x2 and above allocates the required conventional memory during load-time if no higher memory is available. Quixx will not crash your system with other applications; however, some programs will not be able to run after Quixx reserves it memory. If you have a VGA Quixx will take 190K of RAM. EXTENDED MEMORY ADDITION Quixx will first check for the expanded memory driver; if not found, quixx will check for the extended memory driver, HIMEM.SYS. If none of these are found then High Memory is used. Again, if you see the warning message Quixx can cause machine crashes. If you wish to run with WINDOWS you need to force Quixx to use extended memory. If Quixx defaults to expanded memory use the 'x' parameter to try and force it to use extended memory. IF USING EXTENDED MEMORY YOU NEED **** HIMEM.SYS ***** IF USING EXPANDED YOU NEED AN EXPANDED MEMORY DRIVER MEETING THE LIM SPECS. IF YOU DO NOT SEE QUIXX DISPLAY THAT IT RESERVED MEMORY FOR ITSELF THERE CAN BE CRASHES! If only a CGA is present only the color white is used. No other modes work. Modes 17, 18, and 19 are meant for the VGA and will not work properly on an EGA monitor. Modes 21 and 22 are for the Super Vga and also need a multisync monitor. 6. MOUSE SENSING Mouse is sensed at COM1, COM2 and PS/2 port. The port is only checked for activity if it is present. If you are using a Bus Mouse there is a chance that your mouse will not be sensed if it is NOT an MS Bus Mouse (InPort Mouse) or a Mouse Systems Bus Card. This is because the mouse protocols can be different for each manufacturer. Because Quixx modifies the execution of its code if a mouse is present I suggest that if you are using a mouse to always have the MOUSE.SYS or MOUSE.COM file already loaded from your config.sys or autoexec.bat file. Otherwise, Quixx may not properly detect your hardware. 7. WINDOWS COMPATABLITY The program as of the above date has been tested briefly with Windows 3.0. If you are using a mouse on COM 1 or 2 (COM or Bus Mouse) or a PS/2 mouse it will be 'sensed' when you move it and Quixx will restore your screen. The keyboard will not work if you are using a mouse. Quixx only works with WINDOWS if you have EXTENDED MEMORY. In addition, Quixx must be loaded before WINDOWS in order to reserve the necessary memory for its screen saves. If you are having problems with Windows I suggest you make a BATCH file to remove/load Quixx when entering/exiting Windows. If you are EXITING Windows (whether you have a mouse or not) you should use a BATCH file that will REMOVE Quixx from memory (Quixx r) and then RE-INSTALL it after you are done with Windows. 8. SOURCE CODE AVAILABILITY The assembly source is available on request. It is several pages long and includes four modules: 1. TSR and DOS interface routines 2. QUIXX animation routines 3. Graphics routines/Expaned memory routines 4. Command line routines The code is well commented in most parts and can teach the reader about: .non-reentrant TSRs .unloading TSRs .accessing Video Memory/saving/restoring .reading COM ports .using Expanded and Extended Memory .writing graphics algorithms .reading/writing directly to the CGA/EGA/VGA graphics registers The program after version 2.40 is shareware. Copying is prohibited without permission of the author or registration. Shareware companies are entitled to distribute the program if they make note that this program is not free and a $15 registration fee is required. The source is $15 to registered users and well worth it. If interested write to: Jonathan Kraidin 6100 City Line Avenue Apartment 1504 Philadelphia, PA 19131 (215) 878-6666 CIS 72571, 2122 Disclaimer: The author of this program makes no guarentees to its function, compatibility with other software or lack of risk in its use. While Quixx should not cause any problems, this program is executed at the users own risk and the author is not responsible for any damages, data loss or problems resulting directly or indirectly from its use. In no event shall the author or distributers be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use this product, even if the author has been advised of the possibility of such damages. Windows is a product of MicroSoft Corporation. ; Revisions: ; Version 1.0 : Completed in 2/?/90 ; .tsr module ; .quixx routine ; .keyboard reentry bug fix (on most computers?) ; .vga capability added ; .expanded memory usage included ; .tsr unloader included ; .256 color vga capability added ; Version 1.4 : Completed 4/?/90 ; .initial EGA/VGA registers restored properly ; Version 1.5 : Completed 11/10/90 ; .glide mode (DAC register manipulation) ; Version 1.6 : Completed 01/15/91 ; .COM1 port monitoring bug for mouse fixed ; Version 1.7 : Completed 03/26/91 ; .Enable/Disable flag entered (Special feature) ; Version 1.71: Completed 04/02/91 ; .User speed control added (Special feature) ; Version 1.72: Completed 04/29/91 ; .Adjusted mouse movement detection ; Version 2.00: Completed 05/05/91 ; .Extended Memory usage added ; .graphic screen saving algorithm changed from saving all four planes ; at each pixel TO saving all data from each plane THEN switching ; planes. This speeds up the SAVE and RESTORE screen time by 30% ; .Extended/Expanded memory allocation for screen saves reduced ; .VGA19 screen read/restore algorithm tested; bugs fixed ; .specially hook our INT 8, 9, B and C handlers ahead of all ; applications when Quixx activated to guarantee we can properly ; sense keyboard and mouse usage and not worry about other ; applications interfering with the process ; Version 2.01: Completed 05/14/91 ; .WINDOWS compatable ; .MS Bus Mouse properly handled ; .mouse rewrites to screen fixed! ; Version 2.02 and 2.03: Completed 05/16/91 ; .considered case where Extended and Expanded exist ; .corrected bug if EMS/XMS exist, but insufficient memory ; .EGA video/expanded memory bug fixed ; BUGS! BUGS! BUGS! ; Version 2.10: Completed 06/08/91 ; .Compatible with Windows in Enhanced mode (?) ; .PS/2 mouse now sensed (?) ; Version 2.11: Completed 06/09/91 ; .COM mouse bugs using hardware interrupts fixed ; .TSR unload feature used to remove mouse handlers and then ; reload them so that they are at top of chain and continuity is ; maintained even if several applications are loaded/unloaded ; Version 2.20: Completed 07/22/91 ; .added ability to handle 43/50 line conditions for EGA/VGA monitors ; Version 2.21: Completed 08/17/91 ; .COM1 bug with Windows addressed: response time too slow (CLI/STI) ; Version 2.30: Completed 08/19/91 ; .extended/expanded memory override option added ; Version 2.40: Completed 10/16/91 ; .hot-key enable/disable option added ; Version 2.41: Completed 11/06/91 ; .printer activity bug fixed (Thanx Marvin) ; Version 2.42: Completed 11/17/91 ; .numeric keypad makecodes (double scan codes) accounted for so they ; are not processed when restoring screen. ; Version 2.43: Completed 11/28/91 ; .BIOS clock bug fixed: CLI instruction removed from video routines ; and screen 'fix_up' done after QUIXX call instead of within end ; of INT 9 routine. ; .Random number Generator revised. ; .save/restore pagemap register only used with expanded memory.